package com.jerry.junit;

public class Test {

	/**
	 * 
	 * 
	 *  Java中的代理模式
	 *  
	 *  三种代理模式
	 *  
	 *  1. 静态代理  
	 *     代理对象和目标对象 实现相同接口 
	 *     
	 *     1.singer implements Service
	 *     2.singerProxy implements service
	 *     
	 *  2. 动态代理
	 *     Proxy类的方法 static newProxyInstance(1,2,3);
	 *     三个参数 1:ClassLoader loader：指定当前目标对象使用类加载器，写法固定
	 *     		  2:Class<?>[] interfaces：目标对象实现的接口的类型，写法固定
	 *     		  3:InvocationHandler h：事件处理接口，需传入一个实现类，一般直接使用匿名内部类
	 *     
	 *     缺点：静态代理和动态代理  目标对象必须实现一个接口
	 *     
	 *     
	 *     
	 *  3.CGLIB代理 没有实现接口的 使用cglib代理
	 *    
	 *    目标类 不能为final
	 *    
	 *    目标类的方法 假如是final或者static 不会被拦截 就不会执行额外的业务方法
	 *  
	 *  
	 */


}